{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Twisted Graphene Bilayers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## import & prepare" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Defaulting to user installation because normal site-packages is not writeable\n", "Collecting git+https://github.com/nmdl-mizo/interface_master.git@develop\n", " Cloning https://github.com/nmdl-mizo/interface_master.git (to revision develop) to /tmp/pip-req-build-c78tkxc7\n", " Running command git clone --filter=blob:none --quiet https://github.com/nmdl-mizo/interface_master.git /tmp/pip-req-build-c78tkxc7\n", " Resolved https://github.com/nmdl-mizo/interface_master.git to commit 2bdf96ed4835b036557ac18de82b4fa2afdabf24\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: pymatgen in /home/vscode/.local/lib/python3.10/site-packages (from interfacemaster==1.1.1) (2023.1.30)\n", "Requirement already satisfied: matplotlib in /home/vscode/.local/lib/python3.10/site-packages (from interfacemaster==1.1.1) (3.7.0)\n", "Requirement already satisfied: gb_code in /home/vscode/.local/lib/python3.10/site-packages (from interfacemaster==1.1.1) (1.0.0)\n", "Requirement already satisfied: numpy>=1.14.0 in /home/vscode/.local/lib/python3.10/site-packages (from gb_code->interfacemaster==1.1.1) (1.24.2)\n", "Requirement already satisfied: pillow>=6.2.0 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (9.4.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (4.38.0)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (2.8.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (1.0.7)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (23.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (1.4.4)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (3.0.9)\n", "Requirement already satisfied: cycler>=0.10 in /home/vscode/.local/lib/python3.10/site-packages (from matplotlib->interfacemaster==1.1.1) (0.11.0)\n", "Requirement already satisfied: pybtex in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.24.0)\n", "Requirement already satisfied: pandas in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (1.5.3)\n", "Requirement already satisfied: sympy in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (1.11.1)\n", "Requirement already satisfied: uncertainties>=3.1.4 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (3.1.7)\n", "Requirement already satisfied: tqdm in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (4.64.1)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (2.28.2)\n", "Requirement already satisfied: networkx>=2.2 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (3.0)\n", "Requirement already satisfied: mp-api>=0.27.3 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.30.10)\n", "Requirement already satisfied: scipy>=1.5.0 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (1.10.1)\n", "Requirement already satisfied: monty>=3.0.2 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (2022.9.9)\n", "Requirement already satisfied: tabulate in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.9.0)\n", "Requirement already satisfied: ruamel.yaml>=0.17.0 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (0.17.21)\n", "Requirement already satisfied: palettable>=3.1.1 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (3.3.0)\n", "Requirement already satisfied: spglib>=2.0.2 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (2.0.2)\n", "Requirement already satisfied: plotly>=4.5.0 in /home/vscode/.local/lib/python3.10/site-packages (from pymatgen->interfacemaster==1.1.1) (5.13.0)\n", "Requirement already satisfied: emmet-core>=0.39.8 in /home/vscode/.local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (0.44.0)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (65.5.1)\n", "Requirement already satisfied: msgpack in /home/vscode/.local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (1.0.4)\n", "Requirement already satisfied: typing-extensions>=3.7.4.1 in /home/vscode/.local/lib/python3.10/site-packages (from mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (4.5.0)\n", "Requirement already satisfied: tenacity>=6.2.0 in /home/vscode/.local/lib/python3.10/site-packages (from plotly>=4.5.0->pymatgen->interfacemaster==1.1.1) (8.2.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib->interfacemaster==1.1.1) (1.16.0)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (1.26.14)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (2022.12.7)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (3.0.1)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests->pymatgen->interfacemaster==1.1.1) (3.4)\n", "Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /home/vscode/.local/lib/python3.10/site-packages (from ruamel.yaml>=0.17.0->pymatgen->interfacemaster==1.1.1) (0.2.7)\n", "Requirement already satisfied: future in /home/vscode/.local/lib/python3.10/site-packages (from uncertainties>=3.1.4->pymatgen->interfacemaster==1.1.1) (0.18.3)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/site-packages (from pandas->pymatgen->interfacemaster==1.1.1) (2022.7.1)\n", "Requirement already satisfied: PyYAML>=3.01 in /usr/local/lib/python3.10/site-packages (from pybtex->pymatgen->interfacemaster==1.1.1) (6.0)\n", "Requirement already satisfied: latexcodec>=1.0.4 in /home/vscode/.local/lib/python3.10/site-packages (from pybtex->pymatgen->interfacemaster==1.1.1) (2.0.1)\n", "Requirement already satisfied: mpmath>=0.19 in /home/vscode/.local/lib/python3.10/site-packages (from sympy->pymatgen->interfacemaster==1.1.1) (1.2.1)\n", "Requirement already satisfied: pydantic>=1.10.2 in /home/vscode/.local/lib/python3.10/site-packages (from emmet-core>=0.39.8->mp-api>=0.27.3->pymatgen->interfacemaster==1.1.1) (1.10.5)\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.0.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "100 740 100 740 0 0 2605 0 --:--:-- --:--:-- --:--:-- 2605\n" ] } ], "source": [ "!pip install git+https://github.com/nmdl-mizo/interface_master.git@develop\n", "!mkdir -p cif_files\n", "!curl https://raw.githubusercontent.com/nmdl-mizo/interface_master/develop/test_files/cif_files/C_mp-990448_conventional_standard.cif -o 'cif_files/C_mp-990448_conventional_standard.cif'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from interfacemaster.cellcalc import get_primitive_hkl, get_pri_vec_inplane, get_normal_index, get_normal_from_MI, rot\n", "from interfacemaster.interface_generator import core, convert_vector_index\n", "from interfacemaster.symmetric_tilt import get_csl_twisted_graphenes\n", "from numpy import array, dot, round, cross, eye, pi, ceil, column_stack, arange\n", "from numpy.linalg import inv, det, norm\n", "from gb_code.csl_generator import print_list\n", "import pandas as pd" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Define a get_csl_twisted_graphenes class" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/vscode/.local/lib/python3.10/site-packages/pymatgen/io/cif.py:1169: UserWarning: Issues encountered while parsing CIF: Some fractional coordinates rounded to ideal values to avoid issues with finite precision.\n", " warnings.warn(\"Issues encountered while parsing CIF: \" + \"\\n\".join(self.warnings))\n" ] } ], "source": [ "#sigmas, rotation angles, CNID areas, num of atoms\n", "sigmas, thetas, A_cnid, anum = get_csl_twisted_graphenes(lim = 10, filename = \\\n", " 'cif_files/C_mp-990448_conventional_standard.cif',\\\n", " maxsigma = 2500, verbose=False)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", " | sigma | \n", "thetas | \n", "CNID area | \n", "atom number | \n", "
---|---|---|---|---|
1 | \n", "7 | \n", "21.786789 | \n", "0.753823 | \n", "28 | \n", "
2 | \n", "13 | \n", "32.204228 | \n", "0.405905 | \n", "52 | \n", "
3 | \n", "19 | \n", "13.173551 | \n", "0.277724 | \n", "76 | \n", "
4 | \n", "31 | \n", "17.896551 | \n", "0.170218 | \n", "124 | \n", "
5 | \n", "37 | \n", "9.430008 | \n", "0.142615 | \n", "148 | \n", "
6 | \n", "43 | \n", "15.178179 | \n", "0.122715 | \n", "172 | \n", "
7 | \n", "49 | \n", "16.426421 | \n", "0.107689 | \n", "196 | \n", "
8 | \n", "61 | \n", "7.340993 | \n", "0.086504 | \n", "244 | \n", "
9 | \n", "67 | \n", "35.567302 | \n", "0.078758 | \n", "268 | \n", "
10 | \n", "73 | \n", "11.635051 | \n", "0.072284 | \n", "292 | \n", "
11 | \n", "79 | \n", "26.007824 | \n", "0.066794 | \n", "316 | \n", "
12 | \n", "91 | \n", "6.008983 | \n", "0.057986 | \n", "364 | \n", "
13 | \n", "97 | \n", "29.409311 | \n", "0.054400 | \n", "388 | \n", "
14 | \n", "103 | \n", "19.652860 | \n", "0.051231 | \n", "412 | \n", "
15 | \n", "109 | \n", "10.992733 | \n", "0.048411 | \n", "436 | \n", "
16 | \n", "127 | \n", "5.085848 | \n", "0.041549 | \n", "508 | \n", "
17 | \n", "133 | \n", "8.613238 | \n", "0.039675 | \n", "532 | \n", "
18 | \n", "139 | \n", "34.538944 | \n", "0.037962 | \n", "556 | \n", "
19 | \n", "151 | \n", "18.733998 | \n", "0.034945 | \n", "604 | \n", "
20 | \n", "163 | \n", "36.516938 | \n", "0.032373 | \n", "652 | \n", "
21 | \n", "169 | \n", "4.408455 | \n", "0.031223 | \n", "676 | \n", "
22 | \n", "181 | \n", "30.158276 | \n", "0.029153 | \n", "724 | \n", "
23 | \n", "193 | \n", "8.255621 | \n", "0.027341 | \n", "772 | \n", "
24 | \n", "217 | \n", "3.890238 | \n", "0.024317 | \n", "868 | \n", "
25 | \n", "223 | \n", "19.274807 | \n", "0.023663 | \n", "892 | \n", "
26 | \n", "229 | \n", "26.745652 | \n", "0.023043 | \n", "916 | \n", "
27 | \n", "247 | \n", "14.622221 | \n", "0.021363 | \n", "988 | \n", "
28 | \n", "259 | \n", "28.783203 | \n", "0.020374 | \n", "1036 | \n", "
29 | \n", "271 | \n", "3.481006 | \n", "0.019471 | \n", "1084 | \n", "
30 | \n", "277 | \n", "17.278244 | \n", "0.019050 | \n", "1108 | \n", "
31 | \n", "283 | \n", "24.016602 | \n", "0.018646 | \n", "1132 | \n", "
32 | \n", "301 | \n", "6.608610 | \n", "0.017531 | \n", "1204 | \n", "
33 | \n", "331 | \n", "3.149657 | \n", "0.015942 | \n", "1324 | \n", "
34 | \n", "337 | \n", "15.654144 | \n", "0.015658 | \n", "1348 | \n", "
35 | \n", "367 | \n", "11.985100 | \n", "0.014378 | \n", "1468 | \n", "
36 | \n", "379 | \n", "23.713582 | \n", "0.013923 | \n", "1516 | \n", "
37 | \n", "403 | \n", "14.307676 | \n", "0.013094 | \n", "1612 | \n", "
38 | \n", "409 | \n", "19.932013 | \n", "0.012902 | \n", "1636 | \n", "
39 | \n", "457 | \n", "27.052418 | \n", "0.011547 | \n", "1828 | \n", "
40 | \n", "481 | \n", "18.365765 | \n", "0.010970 | \n", "1924 | \n", "
41 | \n", "523 | \n", "20.146584 | \n", "0.010089 | \n", "2092 | \n", "
42 | \n", "559 | \n", "17.026049 | \n", "0.009440 | \n", "2236 | \n", "
43 | \n", "613 | \n", "23.301803 | \n", "0.008608 | \n", "2452 | \n", "